import { createRouter, createWebHistory } from 'vue-router'

import { indexRoutes } from './modules/indexRoutes'
import { tokenStore } from '@/stores/models/tokenStore'

// 1. 定义一些路由
// 每个路由都需要映射到一个组件。
// 我们后面再讨论嵌套路由。
const routes = [...indexRoutes]

// 3. 创建路由实例并传递 `routes` 配置
// 你可以在这里输入更多的配置，但我们在这里
// 暂时保持简单
const router = createRouter({
  // 4. 内部提供了 history 模式的实现。为了简单起见，我们在这里使用 hash 模式。
  history: createWebHistory(),
  routes // `routes: routes` 的缩写
})
/**
 * TODO: 配置路由守卫和路由拦截器
 **/
router.beforeEach((to, from, next) => {
  if (to.path === '/login') {
    const userToken = tokenStore()
    const token = userToken.getToken()
    if (token) {
      // 存在token，跳转到首页
      next('/')
    } else {
      next()
    }
  }
  else {
    next()
  }
})
export default router
